===== 의 차이

#resource
#javascript
작성일:2025. 4. 18.
수정일:2025. 5. 3.

두 연산자 모두 값을 비교하지만, 비교 방식에 차이가 있다.

예측 불가능한 타입 변환으로 인한 버그를 피하기 위해, 거의 항상 === (엄격 동등성 비교)를 사용하는 것이 좋다. ==는 타입 변환 규칙을 정확히 이해하고 특별한 의도가 있을때만 제한적으로 사용해야 한다.

동등성 비교는 조건문 등에서 매우 빈번하게 사용하게 되므로, 두 연산자의 차이를 명확히 이해하고 ===를 일관되게 사용하는 것이 코드의 안정성과 예측 가능서을 높이는 데 중요하다.

  • == (추상 동등성 비교,Abstract Equality Comparison)

    비교화기 전에 피연산자들의 타입을 강제로 변환(type coercion)하여 같은 타입으로 만든 후 값을 비교한다. 이 과정에서 예상치 못하 결과가 나올수 있다. 예를 들어, 0 == falsetrue 이고 "" == falsetrue이며, null == undefinedtrue이다.

  • === (엄격 동등성 비교, Strict Equality Comparison)

    피연산자들의 타입 변환 없이 값과 타입을 모두 비교한다. 타입이 다르면 즉시 false를 반환한다. 예를 들어, 0 == falsefalse이고, null === undefinedfalse이다.